package com.white.databasesbackup.util;


import com.white.databasesbackup.entity.PageVO;

import java.util.function.Function;

/**
 * <p>
 * 分页工具
 * </p>
 *
 * @author huangzy
 * @since 2022/5/6
 */
public class PageUtil {

    /**
     * 对数据进行分页执行,直到执行完所有数据
     * 开发者小心死循环,返回的PageVO<?>必须符合分页规则以及递增
     *
     * @param function 执行函数
     */
    public static void executeAll(Function<Integer, PageVO<?>> function){
        //页码
        int page = 1;
        //是否有下一页
        boolean hasNext;
        do {
            PageVO<?> pageBean = function.apply(page);
            hasNext = pageBean.getTotal() > pageBean.getSize() * page;
            //设置下一页页码
            page++;
        } while (hasNext);
    }

}
